package com.ruoyi.detect.service.Impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.detect.domain.User;
import com.ruoyi.detect.mapper.FloorMapper;
import com.ruoyi.detect.domain.Floor;
import com.ruoyi.detect.service.IFloorService;

/**
 * 楼栋管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-01-10
 */
@Service
public class FloorServiceImpl implements IFloorService

{




    @Autowired
    private FloorMapper floorMapper;

    /**
     * 查询楼栋管理
     * 
     * @param id 楼栋管理主键
     * @return 楼栋管理
     */

    @Override
    public Floor selectFloorById(Long id)
    {
        return floorMapper.selectFloorById(id);
    }

    /**
     * 查询楼栋管理列表
     * 
     * @param floor 楼栋管理
     * @return 楼栋管理
     */
    @Override
    public List<Floor> selectFloorList(Floor floor)
    {
        return floorMapper.selectFloorList(floor);
    }

    /**
     * 新增楼栋管理
     * 
     * @param floor 楼栋管理
     * @return 结果
     */
    @Transactional
    @Override
    public int insertFloor(Floor floor)
    {
        int rows = floorMapper.insertFloor(floor);
        insertUser(floor);
        return rows;
    }

    /**
     * 修改楼栋管理
     * 
     * @param floor 楼栋管理
     * @return 结果
     */
    @Transactional
    @Override
    public int updateFloor(Floor floor)
    {
        floorMapper.deleteUserByFloorId(floor.getId());
        insertUser(floor);
        return floorMapper.updateFloor(floor);
    }

    /**
     * 批量删除楼栋管理
     * 
     * @param ids 需要删除的楼栋管理主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteFloorByIds(Long[] ids)
    {
        floorMapper.deleteUserByFloorIds(ids);
        return floorMapper.deleteFloorByIds(ids);
    }

    /**
     * 删除楼栋管理信息
     * 
     * @param id 楼栋管理主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteFloorById(Long id)
    {
        floorMapper.deleteUserByFloorId(id);
        return floorMapper.deleteFloorById(id);
    }

    /**
     * 新增住户管理信息
     * 
     * @param floor 楼栋管理对象
     */
    public void insertUser(Floor floor)
    {
        List<User> userList = floor.getUserList();
        Long id = floor.getId();
        if (StringUtils.isNotNull(userList))
        {
            List<User> list = new ArrayList<User>();
            for (User user : userList)
            {
                user.setFloorId(id);
                list.add(user);
            }
            if (list.size() > 0)
            {
                floorMapper.batchUser(list);
            }
        }
    }
}
